@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;600&display=swap');
@import url('https://fonts.cdnfonts.com/css/vtc-karnival');

/* ---------------- Global ---------------- */
html, body {
    height: 100%;
    margin: 0 !important;
    padding: 0 !important;
    font-family: 'Inter', 'Roboto', 'Helvetica Neue', sans-serif;
    background-color: #f9f9f9;
    color: #333;
    overflow-x: hidden;
    overflow-y: auto;
}

#app-container {
    padding: 1rem 2rem;
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    box-sizing: border-box;
}

.container-fluid {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* ---------------- Headers ---------------- */
h1 {
    text-align: center;
    margin: 2rem 0 1rem;
    font-size: 2.5rem;
    color: #222;
}

h2 {
    font-family: 'Inter', 'Roboto', 'Helvetica Neue', sans-serif;
    text-align: center;
}

/* ---------------- Main Tabs ---------------- */
.dash-tabs {
    margin-top: 2rem;
}

.dash-tabs .tab {
    background-color: #e6e6e6;
    border-radius: 6px 6px 0 0;
    padding: 0.75rem 1rem;
    margin-right: 0.25rem;
    border: 1px solid #ccc;
    font-weight: 500;
}

.dash-tabs .tab--selected {
    background-color: #fff;
    border-bottom: none;
    color: #007bff;
    font-weight: 600;
}

/* Tab content area */
#tabs-content {
    background-color: #fff;
    padding: 2rem;
    border: 1px solid #ccc;
    border-top: none;
    border-radius: 0 0 8px 8px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.05);
    margin-top: -1px;
}

/* Dropdowns and inputs */
.Select-control,
input[type="text"] {
    margin-bottom: 1rem;
}

.cell-percent {
    font-family: monospace;
}

.dash-cell.focused {
    background-color: inherit !important;
    border: none !important;
}

/* ---------------- Subtabs ---------------- */
.tabs-wrapper {
    width: 100%;
    margin-bottom: 1rem;
}

/* Desktop Tabs Default */
.desktop-only { display: block; }
.mobile-only  { display: none;  }

/* ---------------- DataTable base & improvements ---------------- */
.dash-spreadsheet {
    font-family: "Inter", "Helvetica Neue", Arial, sans-serif !important;
    border-collapse: collapse !important;
    width: 100% !important;
}

.dash-spreadsheet-inner td,
.dash-spreadsheet-inner th {
    padding: 6px 8px !important;
    text-align: center !important;
    vertical-align: middle !important;
    border: 1px solid transparent !important;
    white-space: nowrap !important;
}

.dash-spreadsheet-inner th {
    font-weight: 600 !important;
    font-size: 13px !important;
    text-transform: none !important;
    text-align: center !important;
}

/* Player column: markdown content inline-block & centered */
.dash-spreadsheet-inner td[data-dash-column="Player"] .dash-cell-value,
.dash-spreadsheet-inner th[data-dash-column="Player"] .dash-cell-value {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: 100% !important;
    padding: 0 !important;
}

.dash-spreadsheet-inner td[data-dash-column="Player"] .dash-cell-value > *,
.dash-spreadsheet-inner th[data-dash-column="Player"] .dash-cell-value > * {
    display: inline-block !important;
    max-width: 100% !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    margin: 0 !important;
    vertical-align: middle !important;
    text-align: center !important;
}

/* Compact numeric headers centered */
.dash-spreadsheet-inner th[data-dash-column="G"],
.dash-spreadsheet-inner th[data-dash-column="S"],
.dash-spreadsheet-inner th[data-dash-column="TB"] {
    text-align: center !important;
}

/* Row striping / hover */
.dash-spreadsheet-inner tr:nth-child(even) {
    background-color: #fafafa !important;
}
.dash-spreadsheet-inner tr:hover {
    background-color: #f1f1f1 !important;
}

/* DataTable scroll regions */
.dash-table-container {
    overflow-x: auto !important;
    overflow-y: visible !important;
    padding-bottom: 8px !important; /* space for horizontal scrollbar */
}

.dash-spreadsheet-container {
    overflow-x: visible !important;
    overflow-y: visible !important;
}

/* ---------------- Responsive / Mobile ---------------- */
@media (max-width: 768px) {
    #app-container {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        box-sizing: border-box;
    }

    #tabs-content {
        width: 100% !important;
        max-width: 100% !important;
        padding: 0.5rem !important;
        margin: 0 !important;
        box-sizing: border-box;
    }

    h1 { font-size: 1.6rem; }
    h2 { font-size: 1.2rem; }

    .desktop-only { display: none !important; }
    .mobile-only  { display: block !important; margin-bottom: 1rem; }

    /* Dash dropdown styling */
    .mobile-only .Select-control {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        height: 40px;
    }

    .mobile-only .Select-placeholder,
    .mobile-only .Select-value-label {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 100%;
        text-align: center !important;
    }

    .mobile-only .Select-arrow-zone {
        margin-left: auto !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        height: 100%;
    }

    .mobile-only .Select-menu-outer {
        border: 1px solid #ccc !important;
        border-radius: 6px !important;
        box-shadow: 0 2px 6px rgba(0,0,0,0.1) !important;
    }

    /* Mobile table compact */
    .dash-spreadsheet-inner {
        height: auto !important;
        overflow: visible !important;
        font-size: 9px !important;
    }

    .dash-spreadsheet-inner td,
    .dash-spreadsheet-inner th {
        padding: 0px 1px !important;
        font-size: 9px !important;
    }

    .dash-spreadsheet-inner tr {
        height: 18px !important;
    }

    /* Hide non-essential columns */
    .dash-spreadsheet-inner td[data-dash-column="hex_color_primary"],
    .dash-spreadsheet-inner th[data-dash-column="hex_color_primary"],
    .dash-spreadsheet-inner td[data-dash-column="hex_color_secondary"],
    .dash-spreadsheet-inner th[data-dash-column="hex_color_secondary"],
    .dash-spreadsheet-inner td[data-dash-column="game_sort"],
    .dash-spreadsheet-inner th[data-dash-column="game_sort"],
    .dash-spreadsheet-inner td[data-dash-column="team_sort"],
    .dash-spreadsheet-inner th[data-dash-column="team_sort"],
    .dash-spreadsheet-inner td[data-dash-column="player_sort"],
    .dash-spreadsheet-inner th[data-dash-column="player_sort"] {
        display: none !important;
    }

    /* Column sizing / alignment */
    .dash-spreadsheet-inner td[data-dash-column="Team"],
    .dash-spreadsheet-inner th[data-dash-column="Team"] {
        min-width: 36px !important;
        max-width: 50px !important;
        padding: 0 2px !important;
        text-align: center !important;
    }

    .dash-spreadsheet-inner td[data-dash-column="Player"],
    .dash-spreadsheet-inner th[data-dash-column="Player"] {
        min-width: 90px !important;
        max-width: 140px !important;
        padding: 0 4px !important;
        text-align: center !important;
    }

    .dash-spreadsheet-inner td[data-dash-column="G"],
    .dash-spreadsheet-inner th[data-dash-column="G"],
    .dash-spreadsheet-inner td[data-dash-column="S"],
    .dash-spreadsheet-inner th[data-dash-column="S"],
    .dash-spreadsheet-inner td[data-dash-column="TB"],
    .dash-spreadsheet-inner th[data-dash-column="TB"] {
        min-width: 12px !important;
        max-width: 28px !important;
        padding: 0 2px !important;
        text-align: center !important;
    }

    .dash-spreadsheet-inner td[data-dash-column="Layup"],
    .dash-spreadsheet-inner th[data-dash-column="Layup"],
    .dash-spreadsheet-inner td[data-dash-column="Other"],
    .dash-spreadsheet-inner th[data-dash-column="Other"] {
        min-width: 18px !important;
        max-width: 50px !important;
        padding: 0 2px !important;
        text-align: center !important;
    }

    /* Markdown cells centered both axes */
    .dash-spreadsheet-inner td[data-dash-column="Player"] .dash-cell-value,
    .dash-spreadsheet-inner th[data-dash-column="Player"] .dash-cell-value {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        height: 100% !important;
        padding: 0 !important;
    }
}
